function unique(arr) {
    return Array.from(new Set(arr))
}

// [...new Set(arr)]

// 手写代码，不产生新数组，删除数组里的重复元素（排序， splice() ）
// function unique(arr) {
//     for (var i = 0; i < arr.length; i++) {
//         for (var j = i + 1; j < arr.length; j++) {
//             if (arr[i] == arr[j]) {         //第一个等同于第二个，splice方法删除第二个
//                 arr.splice(j, 1);
//                 j--;
//             }
//         }
//     }
//     return arr;
// }


// https://segmentfault.com/a/1190000016418021?utm_source=tag-newest

console.log(unique([123, "meili", "123", "mogu", 123]))


// let a = [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 2 }]
function unique2(arr) {
    var Map103 = new Map()
    arr.forEach(item => {
        Map103.set(JSON.stringify(item), item)
    })
    return [...Map103.values()]
}
// 以下set 不支持
console.log(unique2([123, [1, 2, 3], [1, "2", 3], [1, 2, 3], "meili"]))
console.log(unique2([123, { a: 1 }, { a: { b: 1 } }, { a: "1" }, { a: { b: 1 } }, "meili"]))



